Reservoir with Random Sort ของ การชักตัวอย่างเรซัฟวาร์

อัลกอริธึมเรซัฟวาร์แบบง่ายๆสามารถออกแบบโดยใช้การจัดเรียงแบบสุ่ม และดำเนินการโดยใช้โครงสร้างข้อมูลคิวลำดับความสำคัญ อัลกอริทึมนี้กำหนดจำนวนสุ่มเป็นคีย์แต่ละรายการและเก็บรักษา k รายการที่มีค่าต่ำสุดสำหรับคีย์ ในสาระสำคัญนี้เทียบเท่ากับการกำหนดหมายเลขสุ่มให้แต่ละรายการเป็นคีย์ การเรียงลำดับรายการโดยใช้คีย์เหล่านี้และรับรายการ k ด้านบน เวลาทำงานที่แย่ที่สุดของอัลกอริทึมคือ O(n log k) ขณะที่เวลาที่ดีที่สุดคือ O(n)

(*  S is a stream of items to sample, R will contain the result  S.Current returns current item in stream  S.Next advances stream to next position  max-priority-queue supports:    Count -> number of items in priority queue    Maximum -> returns maximum key value of all items    Extract-Max() -> Remove the item with max key    Insert(key, Item) -> Adds item with specified key *)ReservoirSample(S[1..?], R[1..k])  H = new max-priority-queue  while S has data    r = Random(0,1)    if H.Count < k      H.Insert(r, S.Current)    else      if H.Maximum > r        H.Extract-Max()        H.Insert(r, S.Current)    S.Next

ใกล้เคียง

การชันสูตรพลิกศพ การชัก การชักจากไข้สูง การชักจูงทางจิตวิทยา การชักตัวอย่างเรซัฟวาร์ การชักว่าว การชั่งน้ำหนัก การชักดาบ กรรชัย กำเนิดพลอย การอับปางของเรืออาร์เอ็มเอส ไททานิก